#ifndef		_video_h_
#define		_video_h_
/* Atributos de video */

#define		WHITE_TXT	0x07	/* Letras blancas, fondo negro */
#define		GREEN		0x29
#define		BLINK		0x80	/* Bit titilante */
#define		WHITE_BLINK_TEXT	(WHITE_TXT | BLINK)
#define		FMTCOPY		0x1A

#define		NCOL		80	/* Numero de columnas */
#define		NROW		25	/* Numero de filas */
//#define	SIZELETRA	2	Tamanio del char + el atributo 

/* Direccion de memoria de video */
#define		VIDMEM		0xB8000
/* Memoria de video */
typedef struct
{
	/* el character*/
	char letra;
	/* el formato del mismo*/
	char formato;
} vid;

/* obtener la coordenada x */
unsigned int getX(void);
/* obtener la coordenada y */
unsigned int getY(void);

/* Inicializa el driver Video, pone el cursor en( NROW-1;0 )y limpia pantalla */
void initVideo(void);
/* Pone el cursor en la coordenada dada */
void setCursor(int row, int col);
/* Avanza el cursor  como un espacio*/
/*static void FwdCursor(void);*/	/* como un espacio*/
/* Retrocede el cursor como un backspace */
void RwdCursor(void);		/* como un backspace*/
/* Pone cursor en el principio de la siguiente linea como un enter */
void newLineCursor(void);
/* Limpia pantalla como un clear en linux*/
void clearScreen(void);
/* Escribe un caracter por pantalla */
void putVideoChar(char c);
/* Guarda el estado de la zona de video en un buffer */
void saveVideo(vid *buffer);
/* Restaura la zona de video con la informacion de buffer */
void LoadVideo(vid *buffer);

void limpiarTab(vid *videodump);

void initVideoCopy(vid * back);
int endVideoCopy(char * st);

void setDefaultFormat(int c);
int getDefaultFormat(void);
 void mouseup(void);
 void mousedown(void);
 void mouseleft(void);
 void mouseright(void);

#endif
